package yu.com.time

import yu.com.time.calclator.Calculator


/**
 * 对时间计算器拓展
 * created zpf on 2018/10/24 0024
 */

/**
 * 按照时间计算器规则减去计算器中时间,取两者的间隔
 * @param calculator 时间计算器
 */
operator fun <S> S.minus(calculator: Calculator<*, S>): Long = -calculator.minus(this)

/**
 * 按照时间计算器规则增加指定的时间(只保留整数部分)，取新的时间
 * @param calculator 时间计算器
 */
operator fun <T> Number.plus(calculator: Calculator<T, *>): T = calculator.plus(toLong())

/**
 * 增加时间(只保留整数部分)
 * @param addition 要加上的值
 */
operator fun <T> Calculator<T, *>.plus(addition: Number): T = plus(addition.toLong())

/**
 * 减少时间(只保留整数部分)
 * @param subtraction 要减去的值
 */
operator fun <T> Calculator<T, *>.minus(subtraction: Number): T = minus(subtraction.toLong())